24-5 A瑊z

我們也可以使用 WSH 來管理微軟的網頁伺服器。首先,我們可以抓到 IIS 的物件,並且列出相關的性質,原始碼如下:

原始檔(iisProp01.js):(灰色區域按兩下即可拷貝)
// 列出 IIS 網頁伺服器的性質

iisObj = GetObject("IIS://LocalHost/W3SVC/1/Root");
prop=[
	"AccessFlags",
	"AccessNoRemoteExecute",
	"AccessNoRemoteRead",
	"AccessNoRemoteWrite",
	"AccessRead",
	"AccessScript",
	"AccessSSL",
	"AccessSSL128",
	"AccessSSLFlags",
	"AccessSSLMapCert",
	"AccessSSLNegotiateCert",
	"AccessSSLRequireCert",
	"AccessWrite",
	"AdminACL",
	"AllowKeepAlive",
	"AllowPathInfoForScriptMappings",
	"AnonymousPasswordSync",
	"AnonymousUserName",
	"AnonymousUserPass",
	"AppAllowClientDebug",
	"AppAllowDebugging"];
prop=prop.sort();	// 排序以利觀看
for (i=0; i<prop.length; i++)
	WScript.Echo("iisObj." + prop[i] + " = " + eval("iisObj."+prop[i]));

執行此程式,可以得到下列結果:

iisObj.AccessFlags = 513 iisObj.AccessNoRemoteExecute = false iisObj.AccessNoRemoteRead = false iisObj.AccessNoRemoteWrite = false iisObj.AccessRead = true iisObj.AccessSSL = false iisObj.AccessSSL128 = false iisObj.AccessSSLFlags = 0 iisObj.AccessSSLMapCert = false iisObj.AccessSSLNegotiateCert = false iisObj.AccessSSLRequireCert = false iisObj.AccessScript = true iisObj.AccessWrite = false iisObj.AdminACL = undefined iisObj.AllowKeepAlive = undefined iisObj.AllowPathInfoForScriptMappings = undefined iisObj.AnonymousPasswordSync = true iisObj.AnonymousUserName = IUSR_ROGER-296F8AA10 iisObj.AnonymousUserPass = ZY=\x'aY,-0}C+ iisObj.AppAllowClientDebug = false iisObj.AppAllowDebugging = false 以上這些性質,代表 IIS 的各種設定。

在下列範例中,我們可以產生虛擬目錄:

原始檔(iisVirtualDir01.js):(灰色區域按兩下即可拷貝)
// 設定 IIS 的虛擬目錄

//首先定義位址物件,「 IIS://LocalHost/W3SVC/1/Root」,表示於預設的 Web 站台的主目錄下建立虛擬目錄。
ServiceObj = GetObject("IIS://LocalHost/W3SVC/1/Root");

//使用「Create("IISWebVirtualDir","虛擬目錄名稱")」方法,以建立虛擬目錄。
dirName="winTemp";
WScript.Echo("建立虛擬目錄:" + dirName);
newVirDir = ServiceObj.Create("IISWebVirtualDir", dirName);

//由Path屬性設定虛擬目錄的實際物理路徑。 
newVirDir.Path = "c:\\windows\\temp";

//由EnableDirBrowsing屬性設定虛擬目錄是否允許瀏覽目錄。
newVirDir.EnableDirBrowsing = true;

//由AccessRead屬性設定虛擬目錄是否允許讀寫。
newVirDir.AccessRead = true;
newVirDir.AccessWrite = false;

//最後再使用SetInfo方法儲存到Metabase當中。
newVirDir.SetInfo();

所產生的虛擬目錄是 winTemp,對應到實際硬碟的目錄是 c:\windows\temp。你可以經由「控制台/系統管理工具/Internet Information Services」來開啟 IIS 管理介面,以確認虛擬目錄 winTemp 的存在。

我們也可以使用 WSH 來控制 IIS 網頁伺服器,請見下列範例:

原始檔(iisControl01.js):(灰色區域按兩下即可拷貝)
// 使用 WSH 來控制 IIS
iisObj = GetObject("IIS://LocalHost/W3SVC/1");
iisObj.Pause();
WScript.Echo("暫停 IIS 伺服器!");
iisObj.Continue();
WScript.Echo("繼續 IIS 伺服器!");
iisObj.Stop();
WScript.Echo("停止 IIS 伺服器!");
iisObj.Start();
WScript.Echo("啟動 IIS 伺服器!");

在上面這個範例中,我們可以對 IIS 進行暫停、繼續、停止、啟動等控制。


JScript 程式設計與應用:用於單機的 WSH 環境